//== SAGITTARIUS ============================================================================

//== BEGINNING OF CODE ===============================================================

#ifndef __SAGUTTARUIS__GREYLIST_IMPL__H_
#define __SAGUTTARUIS__GREYLIST_IMPL__H_

//== INCLUDES ========================================================================

#include "sagittarius/core/SagittariusCore.h"
#include "sagittarius/parallel/multisema.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct {
    //void* next;
    void* v;
} sg_glr;

typedef struct {
    sg_glr *r;
    uint32 n;
    sg_glr *head, *tail;
    SG_DEF_MULTISEMA(sema);
} greylist_t;

#ifdef __cplusplus
}//extern "C"
#endif

#endif
